<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // https://www.cnblogs.com/zygll/p/14262826.html

    // 当其他对象使用instanceof运算符，判断是否为该对象的实例时，会调用这个方法
    // Symbol.hasInstance:可以坐数据类型检测
    class Person {
        static [Symbol.hasInstance](obj) {
            console.log(obj);
            return typeof obj === "string";
        }
    }
    let obj = {};
    let obj2 = 'mortal';
    console.log(obj instanceof Person);
    console.log(obj2 instanceof Person);


    const arr1 = [1, 2, 3];
    const arr2 = [4, 5, 6];
    // 设置arr2不可展开
    arr2[Symbol.isConcatSpreadable] = false;
    const arr3 = arr1.concat(arr2);
    console.log(arr3); // 不可展开的结果是： [1, 2, 3, [4, 5, 6]]
    console.log(arr3); // 可展开的结果是： [1, 2, 3, 4, 5, 6]







</script>

</html>